package com.gonsin.gview.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.gonsin.gview.model.form.GFormBoardModel;
import com.gonsin.gview.model.i18n.TCloneable;
import com.gonsin.gview.model.tab.GLinkBoardModel;
import com.gonsin.gview.model.tab.GTabModel;
import com.gonsin.gview.model.tab.GTabModels;
import com.gonsin.gview.model.table.GTableBoardModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;


@ApiModel("页面的基类")
@Data
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,  property = "boardType", visible = true)
@JsonSubTypes({
        @JsonSubTypes.Type(value = GFormBoardModel.class,name = "form"),
        @JsonSubTypes.Type(value = GTableBoardModel.class,name = "table"),
        @JsonSubTypes.Type(value = GLinkBoardModel.class,name = "link"),
        @JsonSubTypes.Type(value = GTabModels.class,name = "tab"),
})
public abstract class GBoardModel implements TCloneable<GBoardModel> {


}
